Method of forming a perspective rendering from a voxel space

ABSTRACT

A method for forming a high spatial resolution perspective rendering from a low spatial resolution voxel space is disclosed. The method comprises steps of: a) initializing a virtual window of predetermined resolution pixels, and placing the virtual window in or near the voxel space; b) sparsely ray-casting a plurality of vectors from a predetermined vantage-point through the virtual window into the voxel space; and c) calculating a visualization-value at a series of positions along each vector. In a position ordering of steps from the vantage-point to the pixel, an accumulated transparency-value threshold is calculated. Values of proximate voxels are interpolated into an interpolated voxel value for each position. The interpolated voxel values are then transformed into a derived visualization-value and transparency value.

RELATED APPLICATION

This application is a U.S. national filing of PCT Application No.PCT/IL99/00639, filed Nov. 26, 1999, the disclosure of which isincorporated herein by reference.

FIELD OF INVENTION

This invention relates to a method for forming a perspective renderingfrom a space of volume elements (voxels). More specifically, thisinvention relates to a family of algorithmic optimizations, which areuseful in the forming of a perspective rendering from a voxel space.

BACKGROUND OF THE INVENTION

Many quantitative disciplines collect or generate multidimensional data.These disciplines include medical imaging applications such as CT orMRI; geophysical modeling, meteorological forecasting, scientificsimulations, animation models, and the like. This multidimensional datais often stored and manipulated in the form of voxels. Voxels are volumeelements in three (or more) dimensions; and are analogous to pixels (twodimensional picture elements).

Professionals often find it useful to be able to visualize some aspectof voxel data. The visualization requires transforming the voxel data,so that a cross-section, a projection, or another form of visualizationcan be realized on a two-dimensional display device. Numerousvisualization techniques have been explored, and most are unfeasible forapplication; by reason of computational complexities associatedtherewith. Nevertheless, there are certain basic desirable aspects ofvisualization standards for accepted renderings (representations).

The professional expects the visualization to facilitate elevatedinsights and to evoke increased understanding of the data. This is oftenaccomplished by imposing (onto a rendering of the data) subjectivecriteria such as depth, shading, perspective, lighting, or shadowing;which are not necessarily generic to the data being rendered. Forexample, depth or shadow are not natural features of geophysicalcross-sections; but may be helpful to the professional who is lookingfor ways to understand such a complex data set. Alternately, theprofessional may expect the visualization to be life-like (of realisticappearance).

The result of the professionals' rendering expectations and thecomputational complexity of accomplishing them has generated a clutteredconvolution of rendering techniques. Some techniques have been developedwhich are specific to rendering certain data sets, while othertechniques are seemingly more general in scope.

The nature of the prior art (of rendering a voxel space) can be betterappreciated from studying U.S. Pat. No. 5,201,035, U.S. Pat. No.5,499,323, U.S. Pat. No. 5,594,844, and from the prior art referencescited therein. Furthermore, the order of complexity required forsuccessful algorithmic optimization, in forming a perspective renderingfrom a voxel space, will thereby be appreciated.

The prior art is problematic and primarily application specific. Manyoverlapping combinations of more fundamental graphics algorithms areused in an attempt to simultaneously provide adequate rendering withinalgorithmic bounds that are economically and technically practical. Manyexamples of prior art methods are visually realistic but algorithmicallyheavy, and many other examples of the prior art are visually simplisticalbeit algorithmically feasible. Thus, there is a need in the art forrendering methods that are simultaneously visually realistic andalgorithmically practical.

SUMMARY OF TE INVENTION

The present invention relates to a method for forming a high spatialresolution perspective rendering from a low spatial resolution voxelspace, the method including the steps of: (a) initializing a virtualwidow of predetermined resolution pixels, and placing the virtual windowin or near the voxel space; (b) from a predetermined vantage-point,sparsely ray-casting a plurality of vectors through the virtual windowinto the voxel space; (c) calculating a visualization-value for eachray-cast vector not having an associated visualization-value, andtherein for each position in a step dependent series of positions on thevector, and in a position ordering of steps from the vantage-pointthrough the pixel, until an accumulated transparency-value threshold isreached or until a last available voxel intersecting with the vector isreached—whichever is sooner, by: FIRSTLY interpolating values ofproximate voxels into an interpolated voxel value for the position;SECONDLY transforming the interpolated voxel value into a derivedvisualization-value and transparency value; and THIRDLY, using apredetermined selection rule, accumulating the derivedvisualization-value with a value presently stored in the correspondingpixel; and (d) until every pixel has an associated visualization-value,selecting a pixel (P) not yet having a visualization value, and IFsubstantially nearest pixels to the selected pixel (P) have computedvisualization-values that are statistically homogenous, THENinterpolating a visualization-value from these substantially nearestpixels, and assigning the interpolated visualization-value to theselected pixel (P), ELSE ray-casting a vector through the selected pixel(P) and assigning a visualization-value to the selected pixel (P) usingstep (c).

The present invention provides a feasible method, both visually andalgorithmically, for forming a high spatial resolution image perspectivevolume rendering from a low spatial resolution voxel space. The data, tobe rendered into a visualization, is represented in a three-dimensionalarray of volume elements (voxels). Since the data stored in the voxelsis not necessarily of a format, magnitude, or distribution useful forrepresentation (e.g. on a display device such as a TV screen, a plotter,or the like), a transformation step is required in order to conform thedata to a form that may be presented on a display device. These classesare used to transform one or more ranges of voxel values to doublets ofa transparency-value and a representation-value (e.g. RGB for color, orgray-level, or the like). Recall that transparency-value andopacity-value are inverse quantifications of the same visualizationaspect, so it is only by convenience of conceptualization that thepresent invention is described according to transparency-values oropacity-value.

According to the present invention, some interpolations are done beforevoxel value to visualization value transformations while otherinterpolations are done after these transformations. Interpolation isone of the key tools used to render a high-resolution image from a lowerresolution representation. There are many functions that have provenuseful for performing interpolations. Interpolation computationallysolves for a value at a selected position from two or more neighboringpositions. Interpolation functions may even consider all known locationshaving data-values to solve for a single location whose data-value issought. In general, interpolation functions can be ordered; either inthe same sense as polynomials, or according to a measure ofalgorithmic-computational complexity.

The tradeoff between low-order interpolations (e.g. linear),intermediate-order interpolations (e.g. cubic or spline), andhigher-order interpolations directly affects the visual smoothness ofappearance for images wherein interpolations have been used tosynthetically create values for locations where no such values existedin the original data. Even for intermediate-order interpolations, thereis a large algorithmic expense.

Therefore, in visualization applications, normally low-orderinterpolations are used for solving at all interpolation-requiringpositions, except for a most critical sub-set of positions, such aspositions close enough to the eye (e.g. foreground objects and notbackgrounds). Furthermore, switching between different orderinterpolations is noticeable, and requires some secondary compensatorymechanism—especially if the criterion is proximity to the eye. Thesespecial considerations, for preserving an appearance of smoothness, areespecially important because—often an object of the visualization is tomaintain the clear resolution of distinct class boundaries (in the formof continuous iso-surfaces of voxel-values—as explained below).

In the context of the present invention:

-   (i) An “iso-surface” is a manifold in space in which the    interpolation function of the voxel values is constant.-   (ii) A “class” is the region in space in which the interpolation    function assumes values that belong to a predefined interval.    Therefore, by the continuity of the interpolation function, it    follows that a class is bounded by the iso-surface(s) corresponding    to the edge(s) of the class(s) interval. It should be appreciated    that in the context of the present invention the iso-surfaces that    are “interesting” with respect to processing are the class bounding    iso-surfaces.

Another significant aspect in rendering a visualization of data relatesto lighting. There are two basic types of lighting: surface lighting andvolume lighting. Surface lighting occurs (is desired) when an externallight source illuminates the surfaces of the classes. In the context ofthe preferred embodiment of the present invention, surface lightingoriginates from the same predetermined vantage-point as the “eye of theobserver”. By contrast, volume lighting derives from (is desired when)one or more voxels, in the “voxel space”, are of themselves sources ofillumination (radiant). In the context of several embodiments of thepresent invention, either surface lighting is used exclusively or volumelighting is used to complement surface lighting. According to oneembodiment of the present invention, volume lighting is usedexclusively.

Qualitatively, surface lighting values are proportional to the cosine ofthe angle formed between a vector connecting the eye and a point on aniso-surface and a normal to the iso-surface at that point; according tothe embodiment where the light source is coterminous with the eye.

Qualitatively, volume lighting is proportional to the luminance(radiance) associated with one or more points in the voxel space, thedistance between the luminescent point an the vantage-point (the eye),and the opacity (or equivalently but inversely—the transparency) ofrelevant voxels between the luminescent point an the vantage-point (theeye).

Qualitatively, opacity accumulates differently (between each voxel andthe eye) according to the lighting model: surface, volume, orcombination. In general, cumulative opacity represents the “Fraction ofLight” (“FoL”) (also referred to as “CT”—Cumulative Transparency)reaching the eye from a point in the voxel space; due to the lightabsorptive nature of the medium between the two (the eye and the point).Furthermore, it should be noted that the spatial precision necessary forsuccessful rendering of surface lighting is significantly higher thanthat required for successful volume lighting.

According to the volume lighting model, luminescence (radiance) of thepoint is scaled (attenuated) by FoL by the time it reaches the eye.According to the surface lighting model, luminescence (radiance) of theeye is scaled (attenuated) by FoL*FoL by the time it completes the pathof from the eye to point and back to the eye. Furthermore, the surfacenormal direction used in the surface lighting calculation foriso-surfaces is determined using any one of many well-known analyticestimates for a gradient (of the interpolated iso-surface).

Accumulating a transparency value into a pixel is by updating thepresent transparency value for the pixel: CT*=T^(current step size) (seeFIG. 5); the present transparency value for the position on the vectorexponentiated by the distance on the vector from the present position tothe last position accumulated into the pixel; and the presenttransparency value for the position on the vector is a unit normalizedtransparency value.

A further significant aspect in “the process of volume rendering avisualization of data” relates to a well-known general technique called“ray-casting”. Ray-casting substantially simulates a plurality ofoptical-information vectors that converge at the focal point of the eye.Equivalently, ray-casing simulates an algorithmic process wherein anaccumulation of optical-information is organized with respect to aplurality of coterminous vectors; emanating outward from the eye. Thisalgorithmic process enables a truncation of the vector (the cast ray)when the cumulative transparency of the traversed path becomesnegligible.

According to the present invention, positions along the vector areselected for accumulating transparency values, and the step size betweena present position and a next position is selected to be dependent onthe opacity at the present position; albeit minimal and maximal stepsizes limit the bounds of this proportionality. Furthermore, a change ofclass is detected by noting a change in opacity between two consecutivesteps on a vector. Furthermore, according to the preferred embodiment ofthe present invention, in a region traversed by the vector having a hightransparency the step size is large and in a region traversed by thevector having a low transparency the step size is small.

According to the preferred embodiment of the present invention, volumelighting contributions are produced everywhere, whereas surface lightingcontributions are only produced when crossing from a class of loweropacity to a class of higher opacity. This crossing is at a surface thatis facing the eye (a front surface), while a crossing from higher tolower classes of opacity is a “hidden” surface (a back surface). Forexample, in a medical data context if a vector traverses through a mucusand encounters a tissue, then this encounter is a front surface; whilethe continuation of the vector may pass again into a mucus and this“second passing” is a back surface.

According to the criteria (for interpolation) for preserving anappearance of smoothness in the rendering of continuous iso-surfaces, ahigh order of spatial precision is necessary whenever a front surface'ssurface lighting contribution (to the cumulative opacity of the ray-castvector) is to be calculated. Therefore, according to the preferredembodiment of the present invention, whenever a front surface isdetected between two consecutive steps—a smaller step-size search isperformed between the two “consecutive steps”. This search is in orderto achieve a higher order of spatial positioning for a point on thefront surface intersecting with the vector; and also for the normal tothis point on the iso-surface.

Given the special significance of these front surfaces to the renderingprocess, an additional layer of processing is introduced. Thisprocessing is intended to substantially prevent a situation fromoccurring wherein two consecutive steps skip over a front surfacewithout detecting it. Continuing in the medical context example, supposethere is a membrane (or thin film of tissue or a bone fragment, etc) inthe mucus, that is tangential to the vector. Because the membrane issurrounded by transparent substance, the step size risks “jumping over”the membrane without detecting the existence of the membrane.

Therefore according to the preferred embodiment of the presentinvention, an opacity-perturbation operation (“opacification”) isperformed. This opacification process is intended to prevent jumpingover front surfaces without detecting their presence. In theopacification process, a table (or equation) is prepared from which anopacity value can be assigned to each voxel value. According to thistable (or equation), opacity for each voxel value is taken as themaximum value of a predetermined neighborhood with respect to theoriginal voxel value. Furthermore, step size on the vector is accordingto this table. Because this table effectively flags regions whereinthere may be a front surface, the step size on the vector is alwaysreduced whenever the vector is passing in the region of a front surface;even if there is no actual intersection between them. The perturbedvalues from the table (or equation) are NOT used in the accumulation ofa cumulative opacity; and are only used as a conservative strategy forproperly optimizing (better choosing of appropriate) step sizes so as toachieve a visually acceptable rendering.

According to the present invention, another aspect in the process ofvolume rendering relates to selective ray-casting. As can be appreciatedfrom the forgoing aspects of processes involved in volume rendering,each actual vector that is cast (from the eye), and by virtue of whichopacity data is accumulated, causes a measure of algorithmic complexityto be added into the cost of a volume rendering. Furthermore, it shouldbe appreciated that an object of the present invention is to produce ahigh spatial resolution perspective rendering from a low spatialresolution voxel space.

Recalling that the central tradeoff in volume rendering is to provide afeasible method (both visually and algorithmically), the preferredembodiment of the present invention is directed to minimizing the extentto which actual ray-casting is performed. According to a firstapproximation of this minimizing of ray-casting, a predeterminedplurality of rays are cast.

According to one embodiment of the present invention, this predeterminedplurality is distributed in a symmetric regular dispersion such thatvalues for all intermediary rays can be interpolated from the cast rayswithout any additional ray-casting.

According to another embodiment of the present invention, intermediaryrays are cast whenever the accumulated values from the heretofore castrays are not statistically homogenous, and are otherwise interpolated.

According to a variation embodiment of the present invention, a firstplurality of regularly distributed rays are cast; and in each regionbetween these regularly cast rays a statistical homogeneity metric iscomputed. From these cast rays—EITHER values in the region areinterpolated from neighboring cast-rays' values OR a next plurality ofregularly distributed rays are cast in the region, and a next resolutionmetric is computed. This either-or processing is repeated UNTIL valuesfor all rays in a desired spatial resolution of rays have associatedvalues. This variation embodiment is an iterative zoom-in value fillingprocess that uses, as appropriate, the previous embodiments of thepresent invention.

In general, the present invention can be defined as “A method forforming a high spatial resolution perspective rendering from a lowspatial resolution voxel space”. This method includes the four steps(“a” through “d”) of:

-   -   (a) initializing a virtual window of predetermined resolution        pixels, and placing the virtual window in or near the voxel        space;    -   (b) from a predetermined vantage-point, sparsely ray-casting a        plurality of vectors through the virtual window into the voxel        space;    -   (c) (i) for each ray-cast vector not heretofore having an        associated visualization-value;        -   (ii) and therein for each position in a step dependent            series of positions on the vector;        -   (iii) and therein in a position ordering of from the            vantage-point through the pixel;        -   (iv) and therein until an accumulated transparency-value            threshold is reached or until a last available voxel            intersecting with the vector is reached—whichever is sooner;    -   calculating a visualization-value and storing this        visualization-value into the vector's corresponding pixel; by:        -   FIRSTLY interpolating values of proximate voxels into a            interpolated voxel value for the position;        -   SECONDLY transforming the interpolated voxel value into a            derived visualization-value and transparency value; and        -   THIRDLY, using a predetermined selection rule, accumulating            the derived visualization-value with the value presently in            the corresponding pixel; and    -   (d) until every pixel has an associated visualization-value,        selecting a pixel (P) having the initialization from step (a),        and        -   IF substantially nearest pixels to the selected pixel (P)            have computed visualization-values that are statistically            homogenous,        -   THEN interpolating a visualization-value from these            substantially nearest pixels, and assigning the interpolated            visualization-value to the selected pixel (P),        -   ELSE ray-casting a vector through the selected pixel (P) and            assigning a visualization-value to the selected pixel (P)            using step (c).

In relation to these four steps (“a” through “d”—above) and to theconditions and sub-steps therein, a few summary observations are worthyof note.

In step (a), according to the preferred embodiment of the presentinvention, the spatial resolution of the pixels is higher than that of across-section of voxels in the voxel space.

In step (b), if the vantage-point is far from the virtual window, thenthe rays cast through the virtual window will effectively be paralleleach to another. Alternately, if the vantage-point is close to thevirtual window, then the rays cast will effectively be approximating adivergent perspective; as subtended through the angle defined by thevirtual window.

In step (c), all four conditions must be satisfied in order for the“calculating and storing” operation to be performed.

In step (c) condition (i), note that vectors are cast in step (b) andalso in step (d) (at the “ELSE” sub-step).

In step (c) condition (ii), the “calculating and storing” areindependently done for each position on the vector.

In step (c) condition (iii), there are two possible orderings inray-casting. These orderings depend on whether the virtual window isbetween the voxel space and the vantage-point (as is the case for thepresent description); or equivalently whether the voxel space is betweenthe vantage-point and the virtual window. The expression of “from thevantage-point through the pixel” is a convenient choice of nomenclature,which is not intended to exclude any equivalent logically consistentordering. For example, if the virtual window were to be placed in themidst of the voxel space or if the vantage-point were to be placed inthe midst of the voxel space, then there would be optional orderingssuch as:

-   -   From the vantage-point to the virtual window.    -   From the vantage-point through the virtual window.    -   From the virtual window away from the vantage-point.    -   From the virtual window to (or through) the vantage-point    -   From the end of the voxel space to the window.    -   From the end of the voxel space to the virtual window; and        thereafter to (or through) the vantage-point.

In step (c) condition (iv), “whichever is sooner” relates toaccumulating transparency until further accumulation will not effect thevisualization or until there is no further data to effect thevisualization. Furthermore, “transparency threshold” is a lower bound(or if stated equivalently—to an opacity threshold that is an upperbound).

In step (c)“FIRSTLY”, there are numerous methods for accomplishing theinterpolation.

In step (c) “SECONDLY”, the transforming is according to therepresentation that is desired on a display device. Should thetransforming be for interfacing with further image processing, then thetransforming is according to the values appropriate to that processing.

In step (c) “THIRDLY”, the accumulating is according to a lighting modelsuch as the surface lighting model, the volume lighting model, acombination of these two lighting models, a lighting model wherein theillumination source is not coterminous with the eye, or the like.

In step (d), it should be recognized that if the sparse ray-casting ofstep (b) is sufficient (as might be the case when implemented usingparallel processing on the order of a processor per cast ray), then thesupplemental ray-casting of the “ELSE” sub-step may never occur. This isnot particularly problematic given the visual and algorithmicconsiderations motivating the method of the present invention.

It should also be appreciated that when there is a regular distributionof cast rays through the virtual window (in step (d) or even if donedirectly from step (b)) and when this distribution describes a spatialresolution in the virtual window that is higher than the spatialresolution of a cross section of the voxel space, then step (d) isexpected to reduce to “selecting” and “interpolating” substantiallywithout any further “ray-casting”.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to understand the invention and to see how it may be carriedout in practice, a preferred embodiment will now be described, by way ofnon-limiting example only, with reference to the accompanying drawings,in which:

FIG. 1 is a schematic diagram of ray-casting geometry;

FIG. 2 is a schematic mapping of a ray-casting ordering on a window;

FIG. 3 is a schematic diagram of a search on a ray for an iso-surface;

FIG. 4 is a schematic diagram of a ray cast near an opacifiediso-surface;

FIG. 5 is a flowchart summarizing the basic logic process of the presentmethod; and

FIG. 6 is a schematic diagram of a computer system for forming aperspective rendering from a voxel space.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

The present invention relates to a method for forming a high spatialresolution perspective rendering from a low spatial resolution voxelspace. (Turning to FIG. 1, which is a schematic diagram of ray-casinggeometry. This geometry is a typical geometry that is used in manyembodiments of the present invention.) The method includes the foursteps of:

-   -   (a) Initializing a virtual window (1) of predetermined        resolution pixels (2) (3), and placing the virtual window in or        near the voxel space (4). These pixels are logical storage        elements corresponding to coordinates or regions of the virtual        window. Normally, there is a simple and direct transformation        from the geometry of the pixels of the virtual window to a        display device (e.g. CRT, LCD, plotter, etc.).    -   (b) From a predetermined vantage-point (5), sparsely ray-casting        a plurality of vectors (6) (7) through the virtual window into        the voxel space. (Turning to FIG. 2, which is a schematic        mapping of a ray-casting ordering on a virtual window. For        example first casting rays through the pixels marked “X”, then        casting rays through the pixels marked “O”, and finally casting        rays or interpolating for the unmarked pixels—as in step (d)        below.)    -   (c) (Turning now to FIG. 3, which is a schematic diagram of a        search on a ray for an iso-surface) For each ray-cast vector not        heretofore having an associated visualization-value, and therein        for each position in a step dependent series of positions on the        vector (for example (8) (9) (10)), and therein in a position        ordering of from the vantage-point through the pixel, and        therein until an accumulated transparency-value threshold is        reached or until a last available voxel intersecting with the        vector is reached—whichever is sooner; calculating a        visualization-value and storing this visualization-value into        the vector's corresponding pixel; by: FIRSTLY interpolating        values of proximate voxels into an interpolated voxel value for        the position (for example from voxels in the neighborhood of        position (10) on the vector); SECONDLY transforming the        interpolated voxel value into a derived visualization-value and        transparency value; and THIRDLY, using a predetermined selection        rule, accumulating the derived visualization-value with the        value presently in the corresponding pixel.    -   (d) Until every pixel has an associated visualization-value,        selecting a pixel (P) having the initialization from step (a),        and IF substantially nearest pixels to the selected pixel (P)        have computed visualization-values that are statistically        homogenous, THEN interpolating a visualization-value from these        substantially nearest pixels, and assigning the interpolated        visualization-value to the selected pixel (P), ELSE ray-casting        a vector through the selected pixel (P) and assigning a        visualization-value to the selected pixel (P) using step (c).        According to many voxel space-rendering applications,        statistically homogenous is measured with respect to computed        values stored in pixels or with respect to depth factors        associated therewith. (In this context “depth factors” relate to        the distance from the eye to the position on the ray in which        the ray casting was terminated, due to reaching the transparency        value threshold or reaching the end of the voxel space.)

According to the preferred embodiment of the method of the presentinvention, a next position in step (c), in the (transformed—see step (c)“SECONDLY”) step-dependent series of positions along the vector, isselected using a variable step size from a present position; and thevariable step size depends on an associated transparency for thetransparency value of the present position. For most applications thestep size increases with the transparency. Nevertheless there may beapplications wherein the visualization of the transparent portions ofthe transformed voxel space is the important aspect of the rendering.

According to most embodiments of the present invention, the step sizefrom the present position to the next position is never greater than avoxel cross-section for the voxel space. This maintains that theultimate visual quality of the image (being captured in the pixels ofthe virtual window for eventual display on a display device of media)will not be less than the spatial resolution of the voxel space.

According to another embodiment of the present invention, a firstpresent position (of the transformed step-dependent series of positions)along the vector is at the pixel corresponding to the vector. This isequivalent to disregarding any portion of the voxel space that isbetween the vantage-point and the virtual window. According to thepreferred embodiment, the first present position is at the eye (vantagepoint).

According to the preferred embodiment of the present invention, everynext position (of the transformed step-dependent series of positions) istested such that IF a (interpolated) voxel-value class iso-surface (asheretofore defined) has been detected along the vector between the nextposition and the present position, by virtue of the indication that thetransparency value of the next position is smaller than that of thepresent position, THEN at least one position between the present andnext positions is examined to provide a higher spatial resolutionpositioning for the iso-surface. For example in the series of positionon the cast ray in FIG. 3, positions (11) and (12) are on opposite sidesof an iso-surface (13). If the computed visualization value for position(12) is greater that that computed at position (11) then the frontfacing portion of the iso-surface has been traversed by the cast ray.This constitutes the detection of a class iso-surface.

Proceeding (for example with a search) back to test a position (14) andforward to a position (15) will increase the precision of thecontribution by the iso-surface to the visualization value. Stated moreformally, between firstly the at least one position and secondly eitherthe present or next positions, a further at least one position isexamined to provide a higher spatial resolution positioning for theiso-surface. Furthermore, further examinations of positions areperformed until a predetermined precision is achieved in locating thedetected iso-surface.

According to an alternate embodiment of the present invention, everynext position (of the transformed step-dependent series of positions) istested such that IF a class iso-surface has been detected along thevector between the next position and the present position, by virtue ofthe indication that the transparency value of the next position issmaller than that of the present position, THEN a position between thepresent and next positions is assigned as the location for the detectediso-surface.

Another optional enhancement which is applied to embodiments whereiniso-surfaces are detected relates to a visualization-value for thedetected iso-surface being applied to the vector's associated pixel (byfinding a normal (25) to the iso-surface (26) at the vector intersectionpoint or equivalently) using a contiguous gradient to the vectoriso-surface intersection location or from proximate elements of theintersection. This is applied by calculating a current surface lightingcontribution to the cumulative visualization-value, and accumulatingthis surface lighting visualization-value into the pixel. The surfacelighting contribution is the visualization-value at the intersectionposition multiplied by the cosine of the angle (27) formed by the vectorand the normal to the iso-surface at that location (28); and multiplyingthat by the cumulative transparency (accumulated in the associatedpixel) squared.

According to the preferred embodiment of the present invention, aninterpolated voxel value is calculated for a position along the vectorfrom proximate voxels: using cubic interpolation for a position close tothe vantage-point, or using linear interpolation for a position far fromthe vantage-point, or using a distance dependent graded mixture of cubicand linear interpolation for a position of a predetermined intermediatedistance from the vantage-point. This is the preferred embodiment sincethe calculations are simple, the results are smooth and visuallycontinuous, and the weighting of algorithmic efforts is high precisionfor close positions to the eye with a smooth decrease of precision asthe position is further from the eye. Equivalently, any interpolationfunction, which traverses smoothly from high order precision for closepositions to lower order precision for more distant position, isacceptable.

It should be appreciated that transparency values are unit normalized(“specific transparency”). In other words, the transparency values ateach location denote the transparency corresponding to a “slab” of unitthickness. Usually the step size is not of a unit length. Therefore tocalculate the transparency for the volume traversed by this step(interval), the unit normalized transparency value is exponentiated bythe actual step size. Accumulating a transparency value into a pixel isby: multiplying the transparency value of the pixel by the transparencyvalue for the interval. According to the present invention, thepredetermined selection rule of accumulating in step (c) includes afront surface detection and a surface-lighting. Furthermore, accordingto the preferred embodiment of the present invention, selecting a nextposition in the step dependent series of positions is coordinated withan opacification process.

According to the preferred embodiment of the present invention, classiso-surfaces are opacificied to facilitate a higher probability ofdetection. (Turning to FIG. 4, which is a schematic diagram of a raycast near an opacified iso-surface.) The opacification is performed bystretching the intervals defining the classes, where the more opaqueclasses take precedence. This has the effect that the iso-surfaces areshifted (inflated) from their actual location outward (to enclose lessopaque regions). Iso-surfaces (16) has been opacified into expandedsurface “buffers” bounded by iso-surface (17). On the cast ray (6),steps (20), (21) and (22) occur at regular intervals along the ray. Atposition (22) an opacity increase is detected because of theopacification. Therefore, the step size to (23) is reduced and theactual class iso-surface (16) is more likely to be detected. If theopacification were not performed, then the step after (22) would be atposition (23A). Since position (23A) is in a region of transparency likethat of position (21), the iso-surface would not have been detectedwithout the opacification.

According to another embodiment of the present invention, thepredetermined selection rule of accumulating in step (c) includes avolume-lighting (see FIG. 5).

According to further embodiments of the present invention,implementation of the method will be accomplished in parallel. Accordingto one embodiment, step (c) is executed in parallel, by processing forthe “each ray-cast vector of any more than one ray-cast vectorsrequiring the processing of step (c). This may result in allocating aprocessor (for effecting the algorithm of step (c)) to each cast ray.According to another embodiment, step (d) is executed in parallel; byprocessing for the each ray-cast vector of any more than one ray-castvectors requiring the processing of step (d). Likewise, this may resultin allocating a processor (for effecting the algorithm of step (d)) toeach cast ray.

According to the preferred embodiment of the present invention, in step(d), “selecting” of pixels is ordered for progressively generatingnested levels of resolution at the virtual window. This selecting may beas described in FIG. 2, or in quad-tree fashion, or by simulated zoom(or pan), or the like.

According to the preferred embodiment of the present invention, eachtransparency value is associated with a visualization-value forrepresentation on a graphics display device. Furthermore, therepresentation is for associated color or gray levels.

In general the present invention is amenable for adaptation to numerousgeometric permutations. According to the preferred embodiment of thepresent invention, a center surface region of the virtual window isplaced perpendicular to an orientation vector from the vantage-point;and the orientation vector is an average of the plurality of vectors.Furthermore, the virtual window is planar. Alternately, the virtualwindow is curved or warped. Likewise the pixels are preferentiallyarranged in the virtual window as a uniformly spaced rectangular grid.However alternatively, the pixels are arranged in the virtual windowusing circular coordinates, elliptic coordinates, or another conicprojection of coordinates.

The method of the present invention, according to the preferred and thebasic embodiments is directed to rendering the voxel space contains dataderived from a Computer Tomographic (CT) scan, Magnetic Resonance Image(MRI), an ultrasound scan, a Nuclear Magnetic Resonance (NMR) scan, ageophysical survey, a meteorological survey, a scientific simulation, ananimation from a model having more than two dimensions, or a set ofsimultaneous equations.

Accordingly, in the preferred embodiment of the present invention, thevirtual window; having calculated, interpolated, or accumulatedvisualization-values stored in the pixels thereof; is rendered onto adisplay device.

(Turning now to FIG. 5 which is a flowchart summarizing the basic logicprocess of the present method.) The follow notes are helpful in furtherunderstanding the detailed implementation of the present invention:

-   -   “pass” denotes the iteration “phase”, as measured from sparsely        cast rays to higher resolution ray casting (or interpolation in        the virtual window) to complete filling of the virtual window        (as in step (d))—(also see FIG. 2).    -   “pixel” denotes one or more data storage “values” corresponding        to a location or region of the virtual window.    -   “CT” denotes cumulative transparency.    -   “(R, G, B)” denotes the red, green, and blue components of the        visualization value.    -   “T” denotes transparency value.    -   “X+=Y” denotes X is replaced with X+Y.    -   “X*=Y” denotes X is replaced with X*Y.

The method of the present invention has been described with a certaindegree of particularity with regard to ordering of steps, sub-steps,conditions, equivalents, and the like. This degree of particularity isnot intended to limit the scope or spirit of the present invention, andis presented only for the purpose of conveying to those versed in theart such information as is necessary to properly appreciate the presentinvention and enabled embodiments thereof.

The present invention also relates to a computer system for forming aperspective rendering, from a voxel space. (Turning now to FIG. 6 whichis a schematic diagram of a computer system for forming a perspectiverendering from a voxel space.) This system includes:

-   -   a first memory media (61) wherein a voxel space is stored or        represented;    -   a computer processor (62) having data communications with the        first memory media and with a second memory media, and the        processor forms a virtual window of visualization pixels from a        ray-casting into the voxel space, wherein the forming is        according to the method for forming a high spatial resolution        perspective rendering from a low spatial resolution voxel space,        substantially as herein-before defined and illustrated; and    -   the second memory media (63) wherein the virtual window of        visualization pixels is stored or represented.

The preferred embodiment of the present invention also relates togenerating an index mapping of the homogeneity of the voxel space and toconsulting this index mapping in order to decide if an interpolationcomputation is required—as part of the process of interpolating valuesof proximate voxels (step “c” FIRSTLY). For example, in order to furtherspeed-up the process of ray-casting (with no penalty in image quality),an additional data-type is used, referred to as a BIT-VOLUME. In thisdata-type there is a single bit corresponding to each voxel. There aretwo variations in which a bit-volume may be used to facilitateray-casting:

-   1^(st) variation—Per class definition, the bit-volume is prepared    (once) so that a value of 1 to a bit indicates the fact the a 4×4×4    cube of voxels (beginning with the voxel corresponding to that bit    and extending to the positive sides of the x, y and z axes) belong    to a single class.

During ray-case, when reaching a new position along the ray, thecoordinates of the 4×4×4 cube of voxels needed for thecubic-interpolation of this position is calculated. Then, the value ofthe bit in the bit-volune corresponding to this cube (denoted by x) isqueried.

-   -   a If x=0 then the interpolation (cubic or linear, depending on        the distance from the eye as detailed above) proceeds as usual.    -   b Else (if x‥1) then        -   i. If the previous position (the interpolated value of which            was sought) also had x=1, then the previously found            interpolated value is also taken as the current interpolated            value.        -   II. Else (if the previous position had x=0), the value of            the interpolation is taken as an SINGLE voxel in the 4×4×4            cube of voxels.

Note that the interpolated value will be wrong. To see why thisprocedure works properly observe that for the algorithm to work properly(when visualization value is constant per class) it is sufficient forthe used interpolated value to belong to the correct CLASS. Its exactvalue is inconsequential.

A sufficient condition that is easily met for which thiscorrect-class-property holds in the above-described procedure is thatthe interpolated value always lies between the smallest and largestvalue used as input for the interpolation. Since a class is defined byan interval, and if all the inputs to the interpolation belong to theinterval, then an interpolated value lying between the smallest andlargest inputs must also belong to the interval and thus belong to thesame class.

-   2^(nd) variation—being similar in concept to the 1^(st)    variation—Per class definition, the bit-volume is initialized so    that all bits are 0. In a similar fashion to the first variation, a    value of 1 to a bit indicates that the 4×4×4 cube of voxels    corresponding to that bit is known to belong to a single class. A    value of 0 indicates that the class situation in the 4×4×4 cube is    unknown or that they do not belong to a single class. Since at first    nothing is known, the bit-volume is initialized to a constant 0.

During ray-cast, when reaching a new position along the ray, thecoordinates of the 4×4×4 cube of voxels needed for thecubic-interpolation of this position is calculated. Then, the value ofthe bit in the bit-volume corresponding to this tube (denoted by x) isqueried.

-   -   a. If x=0 then the interpolation (cubic or linear, depending on        the distance from the eye as detailed above) proceeds as usual.        If a cubic interpolation is performed, then the appropriate        4×4×4 cube of voxels used for the interpolation are checked and        if found to belong to a single class, the corresponding bit in        the bit-volume is set to 1. Note that since these voxels are        used in the interpolation anyway, this check does not imply a        big overhead.    -   b. If x=1 then the algorithm proceeds exactly as in way 1.

1. A method of forming a perspective rendering from a voxel data set,comprising: (a) raycasting at least one ray from a predeterminedlocation into a voxel space, by sampling points along said ray in aspace defined by said voxel data set; (b) accumulating the effect ofopacity along a path of the ray, using opacity values at said samplingpoints, into a ray storage value; (c) associating points along the castray with material classes; (d) determining if a ray passes from a pointin a first material class to a point in a second material class; (e) ifthe ray is determined to pass between material classes, accumulating alighting contribution of a surface, associated with a boundary betweenthe two classes, into said ray storage value; (f) repeating at least(a), (b), (d), and (e) for a plurality of cast rays; and (g) forming aperspective rendering from said ray storage values.
 2. A methodaccording to claim 1, comprising determining the location of saidboundary in (e) during said ray casting.
 3. A method according to claim2, wherein said boundary is set to be at a position between said twopoints of different classes.
 4. A method according to claim 2, whereinsaid boundary is determined by examining at least one additionalsampling point between the two points of different classes.
 5. A methodaccording to claim 4, comprising repeating examining sampling pointsbetween points of different classes, until a desired precision ofboundary determination is achieved.
 6. A method according to claim 1,comprising calculating said lighting contribution of the surface duringsaid ray casting.
 7. A method according to claim 6, wherein calculatinga lighting contribution of the surface comprises determining a normal tosaid boundary at a point on the boundary.
 8. A method according to claim1, comprising: providing an index array indicating for at least some ofthe voxels of the voxel data set, if a class-boundary does not pass nearthe voxel.
 9. A method according to claim 8, comprising: avoiding saiddetermining in (d) if a sampled point has a negative indication in saidindex array.
 10. A method according to claim 8, comprising: reusing anopacity value from a previous sampled point, in accumulating the effectof opacity along the ray path, if a sampled point has a negativeindication in said index array. indication in said index array.
 11. Amethod according to claim 8, wherein said index array is generated bysetting a value indicating a lack of a boundary for all voxels that aresurrounded by voxels in a same class.
 12. A method according to claim 1,wherein said associated lighting contribution of the surface comprises asurface lighting calculation of said boundary.
 13. A method according toclaim 1, comprising stopping said ray casting if said accumulatedopacity is over a threshold.
 14. A method according to claim 1, whereinsaid sampling points are separated by a step size and wherein said stepsize is dependent on the opacity value at the sampling points.
 15. Amethod according to claim 14, wherein said step size is always smallerthan a voxel cross-section along the path of the cast ray.
 16. A methodaccording to claim 14, wherein said step size is dependent on an opacityat a currently sampled point.
 17. A method according to claim 14,wherein said step size is dependent on the opacities of neighboringvoxels to the currently sampled point.
 18. A method according to claim1, comprising providing a definition of voxel value intervals for eachclass, prior to said ray casting.
 19. A method according to claim 1,wherein the opacity value of at least some of the sampling points isdetermined by: interpolating between voxels near said point; andtransforming said interpolated voxel value into an opacity value forsaid point.
 20. A method according to claim 19, wherein saidinterpolation is dependent on a distance between said sampled point andthe predetermined location from which the ray casting is performed. 21.A method according to claim 20, wherein said interpolation variesbetween a cubic interpolation for nearby points and a linearinterpolation for far points.
 22. A method according to claim 1, whereinsaid predetermined location is within the voxel space.
 23. A methodaccording to claim 1, wherein said voxel data set comprises a medicalimaging data set.
 24. A method according to claim 1, wherein (f)comprises: sparsely casting rays; and determining if to cast at leastone additional ray between cast rays.
 25. A method according to claim24, wherein determining if to cast said at least one additional raycomprises determining if said neighboring rays to said additional rayare statistically homogeneous.
 26. A method according to claim 25,wherein statistical homogeneity is determined with respect to the raystorage values.
 27. A method according to claim 25, wherein statisticalhomogeneity is determined with respect to depth factors associated withthe ray.
 28. A method according to claim 1, wherein (g) comprisesinterpolating between stored values of cast rays.
 29. A method accordingto claim 1, wherein (f) comprises progressively increasing the densityof raycasting.
 30. A method according to claim 29, wherein theprogressively cast rays are cast in parallel.
 31. A method according toclaim 29, wherein additional cast rays are cast to progressivelygenerate nested levels of resolution in the formed image.
 32. A methodaccording to claim 1, comprising rendering said formed perspectiverendering on a display.
 33. A method according to claim 1, comprisingdefining a window in or near the voxel space through which to cast saidrays.
 34. A method according to claim 33, wherein said window isperpendicular to a provided orientation vector.
 35. A method accordingto claim 33, wherein said window is flat and rectangular.
 36. A methodaccording to claim 33, wherein said window is curved.
 37. A methodaccording to claim 33, wherein said window is defined by pixels in auniformly spaced rectangular grid.
 38. A method according to claim 33,wherein said window is defined by pixels using coordinates which are oneof circular coordinates, elliptical coordinates and another conicprojection of coordinates.
 39. A method according to claim 1, whereinsaid accumulation of opacity comprises updating a storage value CT asfollows: CT=CT*T^step_size, where T is a transparency valuecorresponding to the opacity value.
 40. A method according to claim 1,wherein said rays are cast in parallel.
 41. A method according to claim1, wherein the voxel data set is generated by one of CT (ComputerizedTomography), MRI (Magnetic Resonance Imaging), Ultrasound, a geophysicalsurvey, a meteorological survey, a scientific simulation, an animationmodel having more than two dimensions and a set of simultaneousequations.
 42. A method according to claim 1, wherein each voxel in thevoxel data set has associated therewith a visual representation valueand comprising: determining a visualization value associated with asampled point from the voxel associated visual representation values;and accumulating said point associated visualization value into saidstored value.
 43. A method according to claim 42, wherein said visualrepresentation value is a gray scale value.
 44. A method according toclaim 42, wherein said visual representation value is a color value. 45.A method according to claim 42, wherein accumulating said pointassociated visualization values comprises selectively accumulatingvalues based on front surface detection.
 46. A method according to claim42, wherein said point associated visualization value comprises a volumelighting value.
 47. A method according to claim 42, wherein said pointassociated visualization value comprises a surface lighting value.
 48. Amethod according to claim 1, wherein advancing along a ray iscoordinated with an opacification process.
 49. Apparatus for forming aperspective rendering from a voxel space including: a memory for storinga voxel data set; a computer processor performing the following: (a)raycast at least one ray from a predetermined location into the voxelspace sampling points along said ray in a space defined by said voxeldata set; (b) accumulate the effect of opacity along the ray path, usingopacity values at said sampling points, into a ray storage value; (c)associate points along the cast ray with material classes; (d) determineif a ray passes from a point in a first material class to a point in asecond material class: (e) if the ray is determined to pass betweenclasses accumulate a lighting contribution of a surface, associated witha boundary between the two classes, into said ray storage value; (f)repeat at least (a) (b) (d) and (e) for a plurality of cast rays; and(g) form a perspective rendering from said ray storage values; and asecond memory for storing said formed perspective rendering.
 50. Amethod according to claim 1, comprising providing at least oneassociation between two different material classes and a lightingcontribution of a surface associated with the boundary.
 51. A methodaccording to claim 1, wherein determining if a ray passes from a pointin a first material class to a point in a second material class,comprises determining using opacity values of the points.
 52. A methodaccording to claim 1, wherein the material classes belong to a pluralityof possible material classes.